#include <fcntl.h>
#include <signal.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
#include<stdlib.h>

int main(){
    //1.设置文件掩码为0
    umask(0);
    //2.fork后终止父进程，子进程创建新会话
    if(fork()>0){
        exit(0);
    }
    setsid();
    //3.忽略SIGCHLD信号
    signal(SIGCHLD,SIG_IGN);
    //4.再次fock，终止父进程，保持子进程不是会话首进程，不会和终端关联
    if(fork()>0){
        exit(0);
    }

    //5.更改工作目录为根目录
    chdir("/");
    //6.将标准输入输出错误重定向到/dev/null中
    close(0);
    int fd = open("/dev/null",O_RDONLY);
    dup2(fd,2);
    dup2(fd,1);
    while(1);
    return 0;
}